
#ifndef __TAPI_BAT_H__
#define __TAPI_BAT_H__


struct TAPI_BAT_TBL {
    T_BAT_return (*bat_init)   (void            *mem,
                             unsigned char    num);

    T_BAT_return (*bat_deinit) (void);

    T_BAT_return (*bat_new)    (T_BAT_instance  *instance,
                                void            *mem,
                                unsigned char    num,
                                T_BAT_config    *config,
                                void           (*instance_signal_cb)(T_BAT_signal signal));

    T_BAT_return (*bat_delete) (T_BAT_instance   instance);

    T_BAT_return (*bat_open)   (T_BAT_instance   instance,
                            T_BAT_client    *client,
                            int            (*response_cb)(T_BAT_client client,
                                                          T_BAT_cmd_response *response),
                            void           (*signal_cb)  (T_BAT_client client,
                                                          T_BAT_signal signal));

    T_BAT_return (*bat_uns_open)(T_BAT_instance  instance,
                                 T_BAT_client   *client,
                                 int           (*unsolicited_result_cb)(T_BAT_client client,
                                                                        T_BAT_cmd_response *response));

    T_BAT_return (*bat_close)  (T_BAT_client     client);

    T_BAT_return (*bat_send)   (T_BAT_client     client,
                                T_BAT_cmd_send  *cmd);

    T_BAT_return (*bat_ctrl)   (T_BAT_client     client,
                                T_BAT_ctrl      *ctrl);
};

#endif /* __TAPI_BAT_H__ */

